﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace Atentado_ao_Riocentro
{
    public class CenaRaiz : CenaBase // deriva da classe CenaBase.
    {
        public Fundo backgroundfundo; //Background da fase.
        public Personagem player; //Personagem do jogador.
        public Hud hud;// Criamos um objeto da classe hud
        public Carta1 carta; // Criamos um objeto da classe Carta1
        public bool alicate;
        public int achalicate; 
       

        //Metodo construtor da classe.
        public CenaRaiz(Game game)
            : base(game)
        {
            // Carregamos a carta.
            this.carta = new Carta1(game.Content.Load<Texture2D>(@"Imagens\carta"));
            //Carregamos o personagem.
            this.player = new Personagem(game.Content.Load<Texture2D>(@"Imagens\personagem"), new Vector2(0, 0), new Vector2(50, 100));
            // Carregamos a hud.
            this.hud = new Hud(game.Content.Load<Texture2D>(@"Imagens\alicate"), game.Content.Load<SpriteFont>("Fonte"), new Rectangle(0, 0, 50, 50));

        }

        //Metodo usado para atualizações no objeto.
        public override void Update(GameTime gameTime)
        {
            //Guardamos a tecla utilizada pelo usuário.
            teclado = Keyboard.GetState();
            //Update do personagem.
            player.Movimento();
            //Update do tempo da hud.
            hud.Update(gameTime);
            // se o player encontrar a carta ele soma mais um.
            if (player.GetCollider().Intersects(carta.rectanglePicture))
            {
                achalicate++;
            }
            // se o tempo acabar ele muda para cane perdeu.
            else if (hud.tempo == true)
            {
                GerenciadorDeCena.ChangeScene(Game, EstadoDoJogo.Perdeu);
            }
  
        }

        //Metodo usado para desenhar.
        public override void Draw(GameTime gameTime)
        {
            //Iniciamos a ferramenta de desenho.
            spriteBatch.Begin();
            //Desenhamos o personagem.
            player.Draw(spriteBatch);
            // Desenhamos a hud na tela
            hud.DrawFase(spriteBatch);
            // Desenhamos a carta na tela.
            carta.Draw(spriteBatch);
            //Fechamos a ferramenta de desenho.
            spriteBatch.End();

            base.Draw(gameTime);
        }

        public int Findalicate()
        {         
            return achalicate; 
        }
    }
}
